package com.hzsk.lisence.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import javax.persistence.*;
import java.sql.Timestamp;
import java.time.LocalDateTime;

/**
 * @Description :
 * @Date : 2024/8/20
 * @Author : ChenJin
 * @Version : v1.0.0
 **/
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "em_produce_plan")
public class EmProducePlanEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column()
    private Integer id;

    /**
     * 订单号
     */
    @Column(name = "order_code", columnDefinition = "varchar(255)  default ''  comment '订单编号'")
    private String orderCode;

    /**
     * 物料编码
     */
    @Column(name = "idc_material_code", columnDefinition = "varchar(255)  default ''  comment '物料编码'")
    private String idcMaterialCode;

    /**
     * 物料编码
     */
    @Column(name = "nc_material_code", columnDefinition = "varchar(255)  default ''  comment '物料编码'")
    private String ncMaterialCode;

    /**
     * 物料编码
     */
    @Column(name = "mcp_material_code", columnDefinition = "varchar(255)  default ''  comment '物料编码'")
    private String mcpMaterialCode;

    /**
     * 产品型号
     */
    @Column(name = "material_specification", columnDefinition = "varchar(255)  default ''  comment '产品型号'")
    private String materialSpecification;

    /**
     * 数量
     */
    @Column(name = "quantity", columnDefinition = "Integer(11) DEFAULT NULL comment '数量'")
    private Integer quantity;

    /**
     * 产品编号范围
     */
    @Column(name = "product_code_range", columnDefinition = "varchar(255) default '' comment '产品编号范围'")
    private String productCodeRange;

    /**
     * 审批人姓名
     */
    @Column(name = "auditor_name", columnDefinition = "varchar(255) default '' comment '审批人姓名'")
    private String auditorName;

    /**
     * 审批人工号
     */
    @Column(name = "auditor_code", columnDefinition = "varchar(255) default '' comment '审批人'")
    private String auditorCode;

    /**
     * 操作人
     */
    @Column(name = "operator_name", columnDefinition = "varchar(255) default '' comment '操作人'")
    private String operatorName;

    /**
     * 操作人工号
     */
    @Column(name = "operator_code", columnDefinition = "varchar(255) default '' comment '操作人工号'")
    private String operatorCode;

    /**
     * 最早时间
     */
    @Column(name = "est_date", columnDefinition = " datetime DEFAULT NULL  comment '最早时间'")
    @ApiModelProperty(value = "最早时间")
    private String estDate;

    /**
     * 最晚时间
     */
    @Column(name = "lat_date", columnDefinition = " datetime DEFAULT NULL  comment '最晚时间'")
    @ApiModelProperty(value = "最晚时间")
    private String latDate;

    /**
     * 订单类别 0-IDC制作计划，1-软件关系绑定
     */
    @Column(name = "order_type", columnDefinition = "Integer(11) DEFAULT NULL comment '标识 0为IDC制作计划、1为数控装置计划'")
    @ApiModelProperty(value = "订单类别")
    private Integer orderType;

    /**
     * 生产订单状态
     */
    @Column(name = "status", columnDefinition = "Integer(11) DEFAULT 0 comment '标识 0为生产中、1为已完成'")
    private Integer status;

    /**
     * 创建时间
     */
    @Column(name = "create_time", columnDefinition = " datetime DEFAULT NULL  comment '创建时间'")
    @ApiModelProperty(value = "创建时间")
    private Timestamp createTime;

    /**
     * 修改时间
     */
    @Column(name = "update_time", columnDefinition = " datetime DEFAULT NULL  comment '修改时间'")
    @ApiModelProperty(value = "修改时间")
    private Timestamp updateTime;

    @Transient
    private Integer osId;

    /**
     * 操作系统版本
     */
    @Transient
    private String osVersion;

    @Transient
    private Integer softwareId;

    /**
     * 软件版本
     */
    @Transient
    private String softwareVersion;

    /**
     * 分辨率
     */
    @Transient
    private String resolution;

    /**
     * 产品类型
     */
    @Transient
    private String prodType;

    /**
     * 通道数
     */
    @Transient
    private String channelNum;

    /**
     * 授权清单
     */
    @Transient
    private String functions;

    @Transient
    private String operatorId;

    @Transient
    private String operatorAccount;
    
}
